Курсовая Работа
Тема: Разработка базы данных и интерфейса пользователя для информационной системы обувного магазина
Дисциплина: “Прикладная информатика в экономике”
Оглавление
ВВЕДЕНИЕ 3
1. ПОСТАНОВКА ЗАДАЧИ 3
2. МОДЕЛИРОВАНИЕ ДАННЫХ 3
3. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ 5
4. РАЗРАБОТКА ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ 18
5. ТЕСТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ 33
6. ЗАКЛЮЧЕНИЕ 42
7. СПИСОК ИСТОЧНИКОВ 43

Advertisement
Узнайте стоимость Online
  • Тип работы
  • Часть диплома
  • Дипломная работа
  • Курсовая работа
  • Контрольная работа
  • Решение задач
  • Реферат
  • Научно - исследовательская работа
  • Отчет по практике
  • Ответы на билеты
  • Тест/экзамен online
  • Монография
  • Эссе
  • Доклад
  • Компьютерный набор текста
  • Компьютерный чертеж
  • Рецензия
  • Перевод
  • Репетитор
  • Бизнес-план
  • Конспекты
  • Проверка качества
  • Единоразовая консультация
  • Аспирантский реферат
  • Магистерская работа
  • Научная статья
  • Научный труд
  • Техническая редакция текста
  • Чертеж от руки
  • Диаграммы, таблицы
  • Презентация к защите
  • Тезисный план
  • Речь к диплому
  • Доработка заказа клиента
  • Отзыв на диплом
  • Публикация статьи в ВАК
  • Публикация статьи в Scopus
  • Дипломная работа MBA
  • Повышение оригинальности
  • Копирайтинг
  • Другое
Прикрепить файл
Рассчитать стоимость

Внимание!
Это ОЗНАКОМИТЕЛЬНАЯ ВЕРСИЯ работы №3355, цена оригинала 500 рублей. Оформлена в программе Microsoft Word

ВВЕДЕНИЕ
Тема курсовой работы:
Разработка базы данных и интерфейса пользователя для информационной системы обувного магазина.
Цель курсовой работы:
Сформировать навык создания логической модели данных экономической предметной области и выполнения операций с компьютерными средствами создания простейших информационных систем на основе реляционных баз данных.
Задачи курсовой работы:
• Выполнить анализ и формализованное описание исследуемой предметной области в экономической сфере.
• Построить реляционную модель данных и базу данных в соответствии с описанными требованиями к разрабатываемой базе данных.
• Разработать интерфейс базы данных, позволяющий реализовать функциональные требования и учитывающий современные принципы построения информационных систем.
1. ПОСТАНОВКА ЗАДАЧИ
Данная база данных должна реализовывать следующие технологические процессы:
• учет ассортимента товаров, их наличие, количество и цены;
• учет покупок;
• учет покупателей по дисконтным картам, ведение системы скидок постоянным клиентам и в зависимости от стоимости покупки.
За учёт ассортимента товаров, их наличие, количество и цены будет отвечать атрибут “Цена_Модели_Размера”; за учет покупателей по дисконтным картам, ведение системы скидок постоянным клиентам и в зависимости от стоимости покупки будут отвечать атрибуты “Скидка_От_Стоимости_Покупки” и “Дисконтная_Карта”; за учет покупок будет отвечать атрибут “Номер_Чека”.
2. МОДЕЛИРОВАНИЕ ДАННЫХ
Если учесть все технологические процессы, которые приведены в пункте “Постановка задачи”, то получится следующая ЕР-диаграмма исходной модели, состоящей из одной сущности “Продажа обуви” и набором атрибутов. ЕР-диаграмма приведено на Рис. 1.
Рис. 1.Ер-диаграмма исходной модели
Приступим к нормализации Ер-диаграммы исходной модели. Атрибут “Дисконтная_Карта” является повторяющимся и поэтому её выносим в отдельную сущность. Связь “Продажа_Карта” со стороны сущности “Дисконтная_Карта” читается как: в “Дисконтной_Карте” может быть много в “Продаже_Обуви”. Со стороны “Продажа_Обуви” читается как: в “Продаже_Обуви” должна быть одна “Дисконтная_карта”. Ключевым атрибутом, в сущности “Дисконтная_Карта” будет атрибут “Номер_Дисконтной_Карты”. Не ключевыми атрибутами являются “Имя”, “Фамилия”, “Отчество”, “Дата_Рождения”, “Количество_Покупок”, “Наличие_Скидки”.
Атрибут “Цена_Модели_Размера” является повторяющимся и поэтому его выносим в отдельную сущность. Связь “Продажа_Цена” со стороны сущности “Цена_Модели_Размера” читается как: В “Ценах_Модели_Размеров” может быть много “Продаж_Обуви”. Со стороны сущности “Продажа_Обуви” читается как: в “Продаже_Обуви” может быть много “Цен_Моделей_Размеров”. Ключевым атрибутом, в сущности “Цена_Модели_Размера” будет атрибут “Код_Размера_Модели”. Не ключевыми атрибутами являются “Кол-во_Обуви”, “Остаток”, “Дата_Поставки”, “Размер_Модели”, “Поставщик”, “Модели”.
Атрибут “Продавец” является повторяющимся и поэтому его выносим в отдельную сущность. Связь “Продажа_Продавец” со стороны сущности “Продавец” читается как: у “Продавеца” может быть много “Продажи_Обуви”. Со стороны сущности “Продажа_Обуви” читается как: В “Продаже_Обуви” должен быть только один продавец. Ключевым атрибутом, в сущности “Продавец” будет атрибут “Номер_Продавца”. Не ключевыми атрибутами являются “Имя”, “Фамилия”, “Отчество”, “Дата_Рождения”, “Телефон”.
Рассмотрим сущность “Цена_Модели_Размера”. Атрибут “Размер_Модели” является повторяющимся и поэтому его выносим в отдельную сущность. Связь “Цена_Размер” со стороны сущности “Размер_Модели” читается как: в “Размере_Модели” может быть много “Цен_Модели_Размера”. Со стороны сущности “Цена_Модели_Размера” читается как: “Цена_Размера_Модели” должна состоять из одного “Размера_Модели”. Ключевым атрибутом, в сущности “Размер_Модели” будет атрибут “Номер_Модели”. Не ключевым атрибутом является “Размер_Модели”.
Атрибут “Поставщик” является повторяющимся и поэтому его выносим в отдельную сущность. Связь “Цена_Поставщик” со стороны сущности “Поставщик” читается как: у “Поставщика” может быть много “Цен_Модели_Размера”. Со стороны сущности “Цена_Модели_Размера” читается как: у “Цены_Модели_Размера” должен быть только один поставщик. Ключевым атрибутом в сущности “Поставщик” будет атрибут “Номер_Поставщика”. Не ключевыми атрибутами являются “Имя”, “Фамилия”, “Отчество”, “Телефон”, “Фирма”.
Атрибут “Модели” является повторяющимся и поэтому его выносим в отдельную сущность. Связь “Цена_Модели” со стороны сущности “Модели” читается как: у “Модели” может быть много “Цен_Модели_Размера”. Со стороны сущности “Цена_Модели_Размера” читается как: у “Цены_Модели_Размера” может быть только одна “Модель”. Ключевым атрибутом будет “Артикул”. Не ключевыми атрибутами являются “Цена_Модели” и “Тип_Модели”.
Между сущностями “Продажа_Обуви” и “Цена_Модели_Размера” осталось связь “многие ко многим”, которую нужно устранить. При устранении связи “многие ко многим” между сущностями появляется “межсекционная” сущность. Между “межсекционной” сущностью и двумя исходными связь “многие к одному”, многие к стороне “межсекционной” сущности. Связи так же являются ключевыми. “Межсекционную” сущность назовём “Продажа_Размеров_Моделей”. В эту сущность можно внести атрибут “Кол-во_Размеров_Моделей” из сущности “Продажа_Обуви”. Итог нормализации Ер-диаграммы исходной модели представлено на Рис. 2.
Рис. 2.Нормализованная Ер-диаграмма исходной модели
3. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ
А теперь перейдём к созданию схемы базы данных в access. Для этого нужно из сущностей Ер-модели сделать физическую модель. Чтобы это сделать необходимо, учесть несколько правил:
• Каждая сущность преобразуется в таблицу, имя сущности становится именем таблицы;
• Атрибуты сущности преобразуются в колонки таблицы, имена атрибутов становятся именами колонок;
• Ключевые атрибуты становятся первичными ключами таблицы;
• Если для сущности была определена ключевая связь, то первичный ключ таблицы для связанной сущности копируется и объединяется с ключом таблицы для рассматриваемой сущности;
• Связи М:1 и 1:1 приводят к копированию первичных ключей таблицы для сущности, находящейся на одной стороне связи в таблицу для сущности, находящейся на другом конце связи, если связь М:1, то ключи таблицы для сущности, находящейся на конце “один” копируются в таблицу для сущности, находящейся на конце “многие”.
Сущность “Продавец” преобразуется в физическую таблицу, имя таблицы будет “Продавец”. Атрибуты “Имя”, “Фамилия”, “Отчество”, “Дата_Рождения” и “Телефон” преобразуются в колонки таблицы, ключевой атрибут “Номер_Продавца” преобразуется в первичный ключ таблицы. Тип данных у первичного ключа “Номер_Продавца” будет “счётчик”. У колонок “Имя”, “Фамилия”, “Отчество” и “Телефон” тип данных будет “Короткий текст”. У колонки “Дата_Рождения” тип данных будет “Дата/Время”. В этой таблице можно сделать маски ввода для колонок “Дата_Рождения” и “Телефон”. Маской ввода для “Дата_Рождения” будет “00\->L<LL\-0000;0;_”, а для “Телефон” будет “9\(999\)999\-99\-99”. На рис. 6 представлен скриншот таблицы “Продавец”. На рис. 7 представлен скриншот маски ввода “Дата_Рождения” и на рис. 8 представлен скриншот маски ввода “Телефон”.
рис. 3 Скриншот таблицы “Продавец”
рис. 4 Скриншот маски ввода “Дата_Рождения”
рис. 5 Скриншот маски ввода “Телефон”
Сущность “Дискотная_Карта” преобразуется в физическую таблицу, имя таблицы будет “Дисконтная_Карта”. Атрибуты “Имя”, “Фамилия”, “Отчество”, “Дата_Рождения”, “Кол-во_покупок”, “Наличие_Скидки” преобразуются в колонки таблицы, ключевой атрибут “Номер_Дискотной_Карты” преобразуется в первичный ключ таблицы. Тип данных у первичного ключа “Номер_Дискотной_Карты” будет “счётчик”. У колонок “Имя”, “Фамилия”, “Отчество” тип данных будет “короткий текст”. У колонки “Дата_Рождения” тип данных будет “Дата/Время”, у колонки “Кол-во покупок” тип данных “Числовой” и у колонки “Наличие_Скидки” тип данных “Логический”. Маска ввода для колонки “Дата_Рождения” будет “00\->L<LL\-0000;0;_”. На рис. 9 представлен скриншот таблицы “Дискотная_Карта”. На рис. 10 представлен скриншот маски ввода “Дата_Рождения”.
рис. 6 Скриншот таблицы “Дискотная_Карта”
рис. 7 Скриншот маски ввода “Дата_Рождения”
Сущность “Продажа_Обуви” преобразуется в физическую таблицу, имя таблицы будет “Продажа_Обуви”. Атрибуты “Стоимость_Покупки (без учёта скидок)”, “Скидка_От_Стоимости”, “Скидка_От_Дис.Карте”, “Итоговая_Стоимость” и “Дата_Покупки” преобразуются в колонки таблицы, ключевой атрибут “Номер_Чека” преобразуется в первичный ключ таблицы. По 5 правилу первичные ключи из физических таблиц “Скидка_От_Стоимости_Покупки”, “Продавец” и “Дискотная_Карта” копируются в физическую таблицу “Продажа_Обуви”. Тип данных у первичного ключа “Номер_Чека” будет “счётчик”. А у колонок “Номер_Скидки” и “Номер_Продавца”, “Номер_Дискотной_Карты” типом данных будет “числовой”, у колонки “Стоимость_Покупки(без_учёта_скидок)”, “Скидка_От_Дис_Карты”, “Скидка_От_Стоим_Пок”, “Итоговая_Стоимость” тип данных будет “денежный”, а у колонки “Дата_Покупки” тип данных будет “дата/время”. Маска ввода для колонки “Дата_Покупки” будет “00\->L<LL\-0000;0;_”. Здесь сразу можно сразу образовать связи между таблицами “Продажа_Обуви”, “Дискотная_Карта” и “Продавец”. Для этого нужно в колонках, которые были скопированы от таблиц “Дисконтная_Карта” и “Продавец” сделать подстаноку. А именно в колонку “Номер_Продавца” подставить таблицу “Продавец” и в колонку “Номер_Дисконтной_Карты” подставить таблицу “Дисконтная_Карта”. На рис.11 представлен скриншот физической таблицы “Продажа_Обуви”. На рис.12 представлен скриншот маски ввода для колонки “Дата_Покупки”. На рис.14. представлен скриншот подстановки таблицы “Продавец” в колонку “Номер_Продавца” и на рис.15 представлен скриншот подстановки таблицы “Дискотная_Карта” в колонку “Номер_Дисконтной_Карты”.
рис. 8 Скриншот физической таблицы “Продажа_Обуви”
рис. 9 Скриншот маски ввода для колонки “Дата_Покупки”
рис. 10 Скриншот подстановки таблицы “Продавец” в колонку “Номер_Продавца”
рис. 11 Скриншот подстановки таблицы “Дисконтная_Карта” в колонку “Номер_Дисконтной_Карты”
Сущность “Размер_Модели” преобразуется в физическую таблицу, имя таблицы будет “Размер_Модели”. Атрибут “Размер_Модели” и “Вычтено_из_Остатка” преобразуется в колонку таблицы, ключевой атрибут “Номер_Модели” преобразуется в первичный ключ таблицы. Тип данных у первичного ключа будет “счётчик”, у колонки “Размер_Модели” тип данных числовой, а у колонки “Вычтено_Из_Остатка тип данных будет “Логический”. Встроенный список для колонки “Размер_Модели” будет состоять из значений: “1”, ”2”, ”3”, ”4”, ”5”, ”6”, ”7”, ”8”, ”9”, ”10”, ”11”, ”12”, ”13”, ”14”, ”15”, ”16”, ”18”, ”19”, ”20”, “21”, ”22”, “23”, “24” “25”, “26”, “27”, “28”, “29”, “30” “31”, “32”, “33”, “34”, “35”, “36”, “37”, “38”, “39”, “40”, “41”, “42”, “43”, “44”, “45”, “46”, “47”. На рис.16 представлен скриншот таблицы “Размер_Модели”. На рис.17 представлен скриншот встроенного списка для колонки “Размер_Модели”.
рис. 12 Скриншот таблицы “Размер_Модели”
рис. 13 Скриншот встроенного списка для колонки “Размер_Модели”
Сущность “Поставщик” преобразуется в физическую таблицу, имя таблицы будет “Поставщик”. Атрибуты “Имя”, “Фамилия”, “Отчество”, “Телефон” и “Фирма” преобразуются в колонки таблицы, а ключевой атрибут “Номер_Поставщика” преобразуется в первичный ключ таблицы. Тип данных у первичного ключа будет “Счётчик”, а у колонок “Имя”, “Фамилия”, “Отчество”, “Телефон” и “Фирма” типом данных будет “короткий текст”. Маской ввода для колонки “Телефон” будет “9\(999\)999\-99\-99”. На рис.18 представлен скриншот таблицы “Поставщик” и на рис.19 представлен скриншот маски ввода для колонки “Телефон”.
рис. 14 Скриншот таблицы “Поставщик”
рис. 15 скриншот маски ввода для колонки “Телефон”
Сущность “Модели” преобразуется в физическую таблицу, имя таблицы будет “Модели”. Атрибуты “Цена_Модели” и “Тип_Модели” преобразуется в колонки таблицы, а ключевой атрибут “Артикул” преобразуется в первичный ключ таблицы. Тип данных для первичного ключа “Артикул” будет “числовой”. Типом данных для колонки “Цена_Модели” будет “денежный” и для колонки “Тип_Модели” “короткий текст”. Встроенный список для колонки “Тип_Модели” будет состоять из значений: “Туфли”, “Сапоги”, “Борцовки”, “Лодочки”, “Макасины”, “Кеды”, “Красовки”. На рис.20 представлен скриншот таблицы “Модели” и на рис.21 представлен скриншот встроенного списка для колонки “Тип_Модели”.
рис. 16 Скриншот таблицы “Модели”
рис. 17 Скриншот встроенного списка для колонки “Тип_Модели”
Сущность “Цена_Модели_Размера” преобразуется в физическую таблицу, имя таблицы будет “Цена_Модели_Размера”. Атрибуты “Кол-во_Обуви”, “Остаток”, “Дата_Поставки” преобразуются в колонки таблицы, а ключевой атрибут “Код_Размера_Модели” преобразуется в первичный ключ таблицы. По правилу 5 первичные ключи из физических таблиц “Размер_Модели”, “Поставщик”, “Модели” копируются в таблицу “Цена_Модели_Размера”. Тип данных первичного ключа “Код_Размера_Модели” будет “счётчик”, а у колонок “Номер_Модели”, “Номер_Поставщика”, “Артикул”, “Кол-во_Обуви” и “Остаток” тип данных “числовой” и у колонки “Дата_Поставки” тип данных будет “дата/время”. Маской ввода для колонки “Дата_Поставки” будет “00\->L<LL\-0000;0;_”. Сразу образуем связи между таблицами “Цена_Модели_Размера”, “Размер_Модели”, “Поставщик”, “Модели”. В колонке “Номер_Модели” с помощью подстановки подставим таблицу “Модели”, в колонке “Номер_Поставщика” подставим таблицу “Номер_Поставщика”, в колонке “Артикул” подставим таблицу “Модели”. На рис.22 представлен скриншот физической таблицы “Цена_Модели_Размера”. На рис.23 представлен скриншот маски ввода для колонки “Дата_Поставки”. На рис.24 представлен скриншот подстановки таблицы “Модели” в колонку “Номер_Модели”. На рис.25 представлен скриншот подстановки таблицы “Поставщик” в колонку “Номер_Поставщика” и на рис.26 представлен скриншот подстановки таблицы “Модели” в колонку “Артикул”.
рис. 18 Скриншот физической таблицы “Цена_Модели_Размера”
рис. 19 Скриншот маски ввода для колонки “Дата_Поставки”
рис. 20 Скриншот подстановки таблицы “Модели” в колонку “Номер_Модели”
рис. 21 Скриншот подстановки таблицы “Поставщик” в колонку “Номер_Поставщика”
рис. 22 Скриншот подстановки таблицы “Модели” в колонку “Артикул”
Сущность “Продажа_Размеров_Моделей” преобразуется в физическую модель, имя модели будет “Продажа_Размеров_Моделей”. Атрибут “Кол-во_Размеров_Моделей” преобразуется в колонку таблицы. Так как для сущности была определена ключевая связь, то по правилу 4 в таблицу копируются первичный ключ из таблицы “Продажа_Обуви” и из таблицы “Цена_Размера_Модели”, при этом колонки “Номер_Чека” и “Код_Размера_Модели” становятся первичными ключами для таблицы. Тип данных для первичных ключей “Номер_Чека” “Код_Размера_Модели” будет “числовой” и тип данных для колонки “Кол-во_Размеров_Модели” “числовой”. Сделаем связи между таблицами “Продажа_размеров_Моделей”, “Продажа_Обуви”, “Цена_Размера_Модели”. С помощью подстановки подставим таблицу “Продажа_Обуви” в колонку “Номер_Чека” и подставим таблицу “Цена_Размера_Модели” в колонку “Код_Размера_Модели”. На рис.27 представлен скриншот таблицы “Продажа_Размеров_Моделей”. На рис.28 представлен скриншот подстановки таблицы “Продажа_Обуви” в колонку “Номер_Чека” и на рис.29 представлен скриншот подстановки таблицы “Цена_Размера_Модели” в колонку “Код_Размера_Модели”.
рис. 23 Скриншот таблицы “Продажа_Размеров_Моделей”
рис. 24 Скриншот подстановки таблицы “Продажа_Обуви” в колонку “Номер_Чека”
рис. 25 Скриншот подстановки таблицы “Цена_Размера_Модели” в колонку “Код_Размера_Модели”
Если открыть схему данных то не будет связей М:1 и 1:М, для того что бы они появились нужно: обеспечить целостность данных, каскадное обновление связных полей и каскадное удаление связных полей. На рис.30 представлен скриншот схемы данных с связями М:1 и 1:М.
рис. 26 Скриншот схемы данных без связей М:1 и 1:М
4. РАЗРАБОТКА ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ
Сначала в этом пункте мы создадим формы. Начнём с создания формы для физической таблицы “Дисконтная_Карта”. Для того, чтобы это сделать, нужно один раз мышкой кликнуть на неё в списке таблиц слева и выбрать “Мастер форм” во вкладке создать. Форма создаётся автоматически. Для того, чтобы привести её в “нормальны” вид, необходимо удалить все подчёркивания, которыми мы обозначали пробелы. Скриншот формы “Дисконтная_Карта” представлен на рис. 27.
рис. 27Форма “Дисконтная Карта”
Так же создаём форму для физической таблицы “Поставщик”. С помощь “Мастера форм”, форма создаётся автоматически, всё что нам остаётся, это удалить все подчёркивания, с помощью которых, мы обозначали пробел. Скриншот формы “Продавец” представлен на рис. 28.
рис. 28 Скриншот формы “Поставщик”
Этим же алгоритмом действий мы пользуемся, для создания формы “Продавец”. Скриншот формы продавец представлен на рис.29.
рис. 29 Скриншот формы “Продавец”
Этот же алгоритм используем, для создания формы “Модели”. Но здесь можно сделать подчинённую форму, на основе запроса “на выборку”, который бы показывал кол-во обуви на каждый размер. Но для этого сначала нужно создать этот запрос. В кладке создать, выбираем “Конструктор запросов”. В конструкторе сначала выбираем таблицы, которые необходимы для подсчёта кол-ва обуви, такими в нашей бд оказались таблицы “Модели”, “Цена_Модели_Размера” и “Размер_Модели”. Теперь выбираем из таблицы модели столбец “Артикул”, из таблицы “Цена_Модели_Размера” столбец “Остаток” и из таблицы “Размер_Модели” столбец “Размер_Модели”. В кладке “Конструктор” выбираем “Итоги” и групповых операциях для столбца “Остаток” выбираем “Sum”, а для двух других “Группировка”. Сохраняем этот запрос под названием “МоделиВНал”. Открываем форму “Модели” в “Конструкторе” и перетаскиваем запрос “МоделиВНал” из списка запросов слева в форму. Преобразуем таблицу “МоделиВНал” в форму через свойства и скроем повторяющийся атрибут “Артикул”. Скриншот формы “Модели” представлен на рис.30 и скриншот запроса “МоделиВНал” представлен на рис. 31
рис. 30 Скриншот формы “Модели”
рис. 31 Скриншот запроса “МоделиВНал”
Создаём формы, для физической таблицы “Цена_Модели_Размера”, для этого мы опять пользуемся “Мастером форм”, удаляем все подчёркивания, которыми обозначали пробелы и перелиновываем формы в “Принятие заказа”, для того, чтобы тому, кто пользовался этой бд понимал, что в этой форме. “Код_размера_Модели” переименовываем в “Номер поставки”, “Номер_Поставщика в “Поставщик” и “Артикул” в “Модель”. Теперь создадим здесь подчинённую форму “Модели”. Для этого нужно таблицу “Модели” из списка таблиц слева перетащить в “Конструктор” “Цены_Модели_Размера”. Через свойства преобразить таблицу в форму и скрыть “Артикул”. Здесь мы создадим два запроса, которые вычисляли остаток и вносили значение в поле “Остаток”. Для этого мы открываем “Конструктор запросов” и выбираем запрос на “Обновление”. Добавляем таблицы “Продажа_Обуви”, “Продажа_Размеров_Моделей” и “Цена_Модели_Размера”. Выбираем столбец “Остаток” из таблицы “Цена_Модели_Размера”. В строчке “Обновление” через “Построитель” делаем следующие выражение “[Цена_Модели_Размера]![Кол-во_Обуви]-[Продажа_Размеров_Моделей]![Кол-во_Размеров_Моделей]” и в строчке “Условие отбора” пишем “Null”. И сохраняем этот запрос под названием “ОбновлениеОстаток”. Но этот запрос будет обновлять только те остатки, размеры которых уже продавались, т.е. записаны в таблице “Продажа_Размеров_Модели”, а те остатки, которые не участвовали пока в продажах будут пусты и поэтому нужно создать ещё один запрос специально для этих остатков. Открываем “Конструктор запросов”, выбираем запрос на “Обновление” и добавляем таблицу “Цена_Модели_Размера”. В строке “Обновление” с помощью построителя строем выражение “[Цена_Модели_Размера]![Кол-во_Обуви]” и в строке “Условие отбора” пишем “Null” и сохранить этот запрос под именем “Остаток2”. А теперь, для того что бы эти два запроса выполнялись в один клик мыши нужно создать макрос. Для того, чтобы это сделать, нужно в кладке “Создать” выбрать “Макрос” и в нём выбрать следующие действия:
 Обновить;
 Открыть запрос “ОбновлениеОстаток”;
 Открыть запрос “Остаток2”;
 Обновить;
И сохранить этот макрос под именем “ЦенаМоделиРазмера”. Скриншот формы “Цена_Модели_Размера” представлен на рис. 32, скриншот запроса “ОбновлениеОстаток” представлен на рис. 33, скриншот запроса “Остаток2” представлен на рис. 34 и скриншот макроса “ЦенаМоделиРазмера” представлен на рис. 35.
рис. 32 Скриншот формы “Цена_Модели_Размера”
рис. 33 Скриншот запроса “ОбновлениеОстаток”
рис. 34 Скриншот запроса “Остаток2”
рис. 35 Скриншот макроса “ЦенаМоделиРазмера”
А теперь перейдём к созданию формы для физической таблицы “Продажа_Обуви”. С помощью “Мастера форм”, форма создаётся автоматически, удаляем все подчёркивания, которыми мы обозначали пробелы. Строку “Номер_Скидки” переименовываем в “Скидка в %”, “Номер_Продавца” в “Продавец”, “Номер_Дисконтной_Карты” в “Дисконтная карта”. Создаём здесь подчинению форму из таблицы “Продажа_Размеров_Моделей”, для этого нужно в “Конструктор” перетащить таблицу “Продажа_Размеров_Моделей” слева из списка. В свойствах преобразовываем таблицы в форму. Переименовываем форму в “Модели”. Удаляем все подчёркивания, которыми мы обозначали пробелы. Скрываем повторяющийся атрибут “Номер_Чека”. “Код_Размера_Модели” переименовываем в “Размер модели”. Теперь мы создадим запрос, который бы вычитал бы из “Остатка” в таблице “Цена_Модели_Размера” те кол-во размера моделей, которые уже проданы. Для этого открываем “Конструктор запросов”, выбираем запрос на “Обновление” и добавляем таблицы “Продажа_Обуви”, “Продажа_Размеров_Моделий” и “Цена_Модели_Размера”. Выбираем столбец “Остаток” из таблицы “Цена_Модели_Размера” и столбец “Вычтено_из_Остатка” из таблицы “Продажа_Размеров_Моделий”. В строке “Обновление” столбца “Остаток” с помощью построителя вводим выражение “[Цена_Модели_Размера]![Остаток]-[Продажа_Размеров_Моделей]![Кол-во_Размеров_Моделей]” и в столбец “Вычтено_Из_Остака” “1”, а в “Условие отбора” в столбце “Вычтено из остатка” ввести “Ложь”. Сохранить этот запрос под именем “Вычестьизостатка”. Скриншот запроса “Вычтенизостатка” представлен на рис. 36.
рис. 36 Скриншот запроса “Вычтеноизостака”
Для того, чтобы высчитывалось значение в строке “Стоимость (без учёта скидок)” нужно создать запрос на “Обновление”. Но для этого сначала нужно создать, такой запрос, который бы создавал новую таблицу, в которой бы высчитывались стоимости покупок. Для этого открываем “Конструктор запросов” и выбираем запрос на “Создание таблицы”. Сразу для этой таблицы введём название “Стоимость1”. Выбираем таблицы “Дисконтная_Карта”, “Продажа_Обуви”, “Продажа_Размеров_Модели” и “Цена_Модели_Размера”. Выбираем столбец “Номер_Чека” из таблицы “Продажа_Обуви”, а в другом поле строем выражение “СтоимБезУчСки: Sum([Продажа_Размеров_Моделей]![Кол-во_Размеров_Моделей]*[Модели]![Цена_Модели])” и сохраняем этот запрос под именем “Стоимость1”. Скриншот запроса “Стоимость1” представлен на рис.37.
рис. 37 Скриншот запроса “Стоимость1”
А теперь перейдём самому запросу на обновление для строки “Стоимость (без учёта скидок)”. Открываем “Конструктор запросов” и выбираем запрос на “Обновление”. Добавляем таблицу “Продажа_Обуви” и таблицу “Стоимость”. Выбираем столбец “Стоимость(без_учёта_скидок)” из таблицы “Продажа_Обуви” и строке “Обновление” с помощью построителя вписываем “[Стоимость]![СтоимБезУчСки]”. Сохраняем этот запрос под именем “ОбновлениеСтоим”. Скриншот запроса “ОбновлениеСтоим” представлен на рис. 38
рис. 38 Скриншот запроса “ОбновлениеСтоим”
Для того, чтобы в высчитывалась “Скидка от дисконтной карты” нужно создать запрос на “Обновление”. Открываем “Конструктор запросов”, выбираем запрос на “Обновление” и добавляем таблицы “Стоимость”, “Дисконтная_Карта” и “Продажа_Обуви”. Выбираем столбецы “Скидка_от_дис_Карты” и “Номер_Диск_Карты” в таблице “Продажа_Обуви”. В строке “Обновление” для столбца “Скид_дис_Карты” вводим выражение “[Продажа_Обуви]![Стоимость_Покупки(без учёта скидки)]*([Дисконтная_Карта]![Номер_Дисконтной_Карты]/100)” и в “Условие отбора” для столбца “Номер_Диск_Карты” вводим “Not null”. Сохраняем запрос под именем “ОбновлениеСкидДис”. Скриншот запроса “ОбновлениеСкидДис” представлен на рис. 39
рис. 39 Скриншот запроса “ОбновлениеСкидДис”
Для того, чтобы создать запрос, который бы вводил значение в строке “Скидка от стоимости покупок” нужно сначала создать два запроса на “Обновление”, которые бы в зависимости от стоимости покупки вычислял бы “Величину скидки” и вводил бы её в строку “Скидка в %”. Для этого откроем “Конструктор запросов” и выберем запрос на “Обновление”. Добавим таблицу “Продажа_Обуви” и выберем столбец “Номер_Скидки”. В другом столбце введём выражение с помощью построителя “[Продажа_Обуви]![Стоимость_Покупки(без учёта скидки)]-[Продажа_Обуви]![Скидка_От_Диск_Ка]”, в “Обновление” для “Номера_Скидки” пишем “5”, а в условие отбора для другого столбца “ Between 3000 And 5000”. Сохраняем этот запрос по именем “Скид1” И так же создаём второй запрос, только в “Условие отбора” пишем “>5000” и в “Обновление” пишем “10”, сохраняем этот запрос под именем “Скид22”. Скриншот запроса “Скид1” представлен на рис. 40, а скриншот запроса “Скид22” на рис. 41.
рис. 40 Скриншот запроса “Скид1”
рис. 41 Скриншот запроса “Скид22”
А теперь перейдём к запросу, для введения значения в строку “Скидка от стоимости покупки”. Для этого откроем “Конструктор запросов” и выберем запрос на “Обновление”. Добавим таблицу “Продажа_Обуви” и выбираем столбец “Скид_От_Стоим_Пок”, в строку “Обновление” с помощью построителя вводим выражение “[Продажа_Обуви]![Стоимость_Покупки(без учёта скидки)]*[Продажа_Обуви]![Номер_Скидки]/100”. Сохраняем этот запрос под именем “СкидОтСтоимПок”. Скриншот запроса “Скид_От_Стоим_Пок” представлен на рис.42.
рис. 42 Скриншот запроса “СкилОтСтоимПок”
А теперь перейдём к запросу, который бы вводил значение в строку “Итоговая стоимость”. Для этого открываем “Конструктор запросов” и выбираем запрос на “Обновление”. Добавляем таблицу “Продажа_Обуви” и выбираем столбец “Итоговая_Стоимость”. В строку “Обновление” с помощью построителя вводим “[Продажа_Обуви]![Стоимость_Покупки(без учёта скидки)]-[Продажа_Обуви]![Скидка_От_Диск_Ка]-[Продажа_Обуви]![Скид_От_Стоим_Пок]”. Сохраняем этот запрос под именем “ИтоговаяСтоимость”. Скриншот запроса “ИтоговаСтоимость” представлен на рис. 43.
рис. 43 Скриншот запроса “ИтоговаяСтоимость”
Теперь, что бы все эти созданные нами запросы, выполнялись одним кликом мыши, нужно создать макрос. Для того, чтобы это сделать, нужно в кладке “Создать” выбрать макрос и выбрать в нём следующие действия:
 Обновить;
 Открыть запрос “Стоимость1”;
 Открыть запрос “ОбновлениеСтоим”;
 Открыть запрос “ОбновлениеСкидДис”;
 Открыть запрос “Скид1”;
 Открыть запрос “Скид22”;
 Открыть запрос “СкидОтСтоимПок”;
 Открыть запрос “ИтговаяСтоим”;
 Открыть запрос “Вычестьизостатка”;
 Обновить;
Сохранить данный макрос под именем “ПродажаОбуви”. Скриншот макроса “ПродажаОбуви” представлен на рис. 44
рис. 44 Скриншот макроса “ПродажаОбуви”
Скриншот формы “Продажа обуви” представлен на рис. 45.
рис. 45 Скриншот формы “Продажа Обуви”
Теперь создадим главную форму “Menu”. При открытии бд, автоматически сразу должна открывается эта форма. Во вкладке “Создать” выбираем “Пустая форма” и в ней создаём вкладки “Обувь”, “Продажа”, “Статистика”, “Дисконтные карты”, “Продавец”, “Поставщик”. И в каждой из этих форм создаём кнопки на соответствующие формы и отчёты. Скриншот формы “Menu” представлен на рис. 46.
рис. 46 Скриншот формы “Menu”
Пока, что мы создали форму “Menu”, а теперь нужно сделать так, чтобы он открывалась автоматически месте с бд. Для этого открываем параметры бд и в вкладке “Текущая база данных” в строке “Форма просмотра” вводим нашу форму “Menu”. Скриншот параметров базы данных представлен на рис. 47.
рис. 47 Скриншот параметром базы данных
В кладке формы “Menu” “Статистика”, нужно вставлять кнопки, открывающие отчёты, но мы их ещё не создали. Отчёты создаются на основе запросов. Например, создадим отчёт, в котором была бы показана прибыль, принесённая каждым поставщиком. Для этого создадим запрос. Открываем “Конструктор запросов” и добавляем таблицы “Поставщик”, “Цена_Модели_Размера”, “Модели”, “Продажа_Размеров_Моделей”. Выбираем “Итоги”. Из таблицы “Поставщик” выбираем “Имя”, “Фамилия” и “Отчество”, для них “Групповой операцией” будет “группировка”. В следующем столбце вычитываем Общую прибыль. Для этого с помощью построителя вводим “Цена поставки (общая): Sum([Продажа_Размеров_Моделей]![Кол-во_Размеров_Моделей]*[Модели]![Цена_Модели])” и “группой операцией” будет “Выражение”. Этот запрос сохраняем под названием “Приб_От_Пост”. Скриншот запроса “Приб_От_Пост” представлен на рис. 48.
рис. 48 Скриншот запроса “Приб_От_Пост”
А вот теперь создаём отчёт. Для этого нужно выделить запрос “Приб_От_Пост” слева в списке и в кладке “Создать” выбрать отчёт. Отчёт создаётся автоматически. Скриншот отчёта “Прибыль от поставщиков” представлен на рис. 49.
рис. 49 Отчёт “Прибыль от поставщиков”
Этот запрос можно открыть с помощью кнопки во вкладе “Статистика” в форме “Menu”.
5. ТЕСТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ
Давайте рассмотрим пример принятия заказа. Для того, чтобы принять заказ нужно открыть БД. В форме “Menu” во кладке “Обувь” нажать на кнопку “Принятие заказа”. На рис.54 представлена кнопка “Принятие заказа”.
рис. 50 Кнопка “Принятие доставки”
После этого открывается форма “Принятие заказа”. Набираем данные в строки формы, кроме строки “Номер поставки”, “Остаток” и “Цена модели”. В строку “Номер поставки” значение водится автоматически. После того, как были заполнены все строки, кроме строки “Остаток” нужно нажать на кнопку макроса, которая находится правее от строки “Номер поставки”. После чего, значение в строку “Остаток” введётся автоматически. Внимание! В строки “Размер модели”, “Поставщик” и “Модель” значения выбираются из предложенного списка. На рис. 51 красным выделены те строки, в которых нужно выбирать данные из предложенного списка. На рис. 52 красным выделены те строки, которые нужно вводить вручную. На рис. 53 красным выделены те строки в которых вводить значения не надо. На рис. 54 красным выделен макрос, на который нужно нажать, после введения всех данных в таблицу.
рис. 51 строки со списком
рис. 52 строки, в которые нужно вводить значения
рис. 53 те строки, которые заполнять не надо
рис. 54 Макрос
Если в строке “Поставщик” нет нужного поставщика, т.е. вы имеете дело с новым поставщиком, то нужно вернутся в форму “Menu”, выбрать вкладку “Поставщик” и нажать на кнопку “Поставщик”. На рис. 55 представлен кнопка “Поставщик”.
рис. 55 кнопка “Поставщик”
Открывается форма “Поставщик” и в зависимости от названия строки вводим значения, значение вводить не надо только в строку “Номер поставщика”. На рис. 56 красным выделены те строки, в которые нужно вводить значения.
рис. 56 строки, в которые нужно вводить данные
Возвращаясь к форме “Принятие поставки” если в строке “Модель” нет нужной “Модели”, т.е. вы имеете дело с новой моделью, то нужно вернутся в форму “Menu” и в кладке обувь нажать на кнопку “Обувь”. На рис. 57 представлена кнопка “Обувь”.
рис. 57 кнопка “Обувь”
Откроется форма “Модели” и вводить в неё в зависимости от названия строки вводить данные. Внимание! В подчинённую форму “Модели в наличии” вводить ничего не надо! Она создана лишь для того, чтобы визуально показать пользователю, сколько той или иной модели размера у него осталось. На рис. 58 красным выделены те строки, в которые надо вводить данные.
рис. 58 строки, для ввода данных
Принятие заказа завершено.
А теперь представим, что к нам пришёл покупатель и покупает у нас обувь. Для этого необходимо в форме “Menu” выбрать вкладку “Продажа” и нажать на кнопку “Продажа”. На рис. 59 представлена кнопка “Продажа”.
рис. 59 кнопка “Продажа”
Отрывается форма “Продажа обуви”. В строки “Номер чека”, “Скидка %”, “Стоимость (без учёта скидок)”, “Скидка от дисконтной карты”, “Итоговая стоимость”, а также галочку в строке “Вычтено из остатка” вводить не надо, их в конце, после того как вы введёте все остальные данные вычислит макрос, который вы запустите нажав на кнопку макроса, находящейся правее строки “Номер чека”. На рис. 60 представлены строки, в которые вводить значения не надо. На рис. 61 представлен макрос.
рис. 60 значения, которые вводить не надо
рис. 61 Макрос
В строках “Продавец”, “Дисконтная карта”, “Размер модели” выбираем значения из предложенного списка. В строке “Дисконтная карта” выбираем значение, если у покупателя есть дисконтная карта. На рис. 62 представлены строки со списком.
рис. 62 строки со списком
Самостоятельно вводим значения в строки “Дата покупки” и “Кол-во моделей размеров”. На рис. 63 представлены строки, куда надо вводить данные самостоятельно.
рис. 63 строки, куда надо вводить значения
Если покупатель покупает не один вид обуви, то в подчинённой форме “Модели”, после того, как ввели значения, для одного вида обуви нажимаем на стрелочку далее, чтобы ввести в один чек, несколько видов обуви. На рис. 64 красным выделена стрелочка, для введения несколько размеров моделей.
рис. 64 стрелка, для введения несколько видов размеров моделей
Если у покупателя нет дисконтной кары, но он хочет её приобрести, то нужно вернутся в форму “Menu” и в кладке “Дисконтные карты” нажать на кнопку “Дисконтные карты”. На рис. 65 представлена кнопка “Дисконтные карты”.
рис. 65 кнопка “Дисконтные карты”
Открывается форма “Дисконтные карты” и в зависимости от названий строк вводим значения, не надо только вводить значение в строку “Номер дисконтной карты”. На рис. 66 красны выделена строка, в которую вводить данные не надо.
рис. 66 строка, в которую вводить данные не надо
А теперь представим себе, что к нам пришли нанимается на работу. Что бы человек в нашей БД числился как продавец, необходимо в форме “Menu” выбрать вкладку “Продавец” и нажать на кнопку “Продавец”. На рис. 67 представлена кнопка “Продавец”.
рис. 67 кнопка “Продавец”
Откроется форма “Продавец” и в ней в зависимости от названия строк ввести данные нашего нового продавца. На рис. 68 красным показаны те строки, которые вводить данные не надо.
рис. 68 строки, в которые вводить данные не надо
6. ЗАКЛЮЧЕНИЕ
В итоге этой курсовой работы мы создали базу данных, которая ведёт:
• учет ассортимента товаров, их наличие, количество и цены;
• учет покупок;
• учет покупателей по дисконтным картам, ведение системы скидок постоянным клиентам и в зависимости от стоимости покупки.
Недостатком моей базы данных можно назвать только то, что в ней учитывается только та цена модели, по которой обувной магазин её продаёт, а цену, по которой эту модель привёз поставщик не учитывается. И пользователю этой БД придётся сначала высчитать цену реализации модели, прежде чем её ставить на продажу.
7. СПИСОК ИСТОЧНИКОВ
1. Международный Банковский Институт: Методические рекомендации для курсовой работы URL (дата обращения: 05.04.2014).
2. Международный Банковский Институт: Тема №2 URL: (дата обращения: 28.03.2014).
3. Международный Банковский Институт: тема №4 URL: (дата обращения: 15.03.2014)